সি প্রোগ্রামিং ভাষায় বিভিন্ন এডভান্সড গাণিতিক ফাংশন রয়েছে যা গাণিতিক সমস্যার সমাধান দ্রুত এবং কার্যকর করে। এডভান্সড গাণিতিক ফাংশনগুলো math.h
হেডার ফাইলের অন্তর্গত এবং এগুলো বিভিন্ন গাণিতিক গণনা যেমন শক্তি, লগারিদম, বর্গমূল, ত্রিকোণমিতিক ফাংশন ইত্যাদি সম্পন্ন করতে ব্যবহৃত হয়।
নিচে সি প্রোগ্রামের কিছু গুরুত্বপূর্ণ এডভান্সড গাণিতিক ফাংশন এবং তাদের কাজ সম্পর্কে বিস্তারিত আলোচনা করা হলো।
pow()
– শক্তি নির্ধারণpow()
ফাংশনটি দুটি সংখ্যার শক্তি নির্ধারণ করে, অর্থাৎ x^y
(যেখানে x
বেস এবং y
সূচক)।
double pow(double x, double y);
#include <stdio.h>
#include <math.h>
int main() {
double base = 2.0, exponent = 3.0;
double result = pow(base, exponent); // 2^3
printf("Result: %.2f\n", result);
return 0;
}
Output:Result: 8.00
sqrt()
– বর্গমূল নির্ধারণsqrt()
ফাংশনটি একটি সংখ্যার বর্গমূল নির্ধারণ করে। এটি শুধুমাত্র ধনাত্মক সংখ্যার জন্য ব্যবহারযোগ্য, কারণ ঋণাত্মক সংখ্যার বর্গমূল নেই।
double sqrt(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = 16.0;
double result = sqrt(num); // বর্গমূল নির্ধারণ
printf("Square root: %.2f\n", result);
return 0;
}
Output:Square root: 4.00
exp()
– সূচকীয় মান নির্ধারণexp()
ফাংশনটি একটি সংখ্যার প্রাকৃতিক সূচক নির্ধারণ করে, অর্থাৎ e^x
(যেখানে e
একটি গাণিতিক ধ্রুবক প্রায় ২.৭১৮২৮)।
double exp(double x);
#include <stdio.h>
#include <math.h>
int main() {
double exponent = 1.0;
double result = exp(exponent); // e^1
printf("Exponential: %.2f\n", result);
return 0;
}
Output:Exponential: 2.72
log()
– প্রাকৃতিক লগারিদম নির্ধারণlog()
ফাংশনটি প্রাকৃতিক লগারিদম নির্ধারণ করে। এটি e
এর ভিত্তিতে লগারিদম প্রদান করে।
double log(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = 2.7183;
double result = log(num); // প্রাকৃতিক লগারিদম
printf("Natural log: %.2f\n", result);
return 0;
}
Output:Natural log: 1.00
log10()
– দশমিক ভিত্তিক লগারিদমlog10()
ফাংশনটি দশমিক ভিত্তিক লগারিদম নির্ধারণ করে, অর্থাৎ log base 10 প্রদান করে।
double log10(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = 100.0;
double result = log10(num); // দশমিক ভিত্তিক লগারিদম
printf("Log base 10: %.2f\n", result);
return 0;
}
Output:Log base 10: 2.00
sin()
, cos()
, এবং tan()
– ত্রিকোণমিতিক ফাংশনএই ফাংশনগুলো ত্রিকোণমিতিক কোণ নির্ধারণ করতে ব্যবহৃত হয়। কোণটি রেডিয়ানে দেওয়া হয়।
sin()
– সাইন নির্ধারণcos()
– কোসাইন নির্ধারণtan()
– ট্যানজেন্ট নির্ধারণdouble sin(double x);
double cos(double x);
double tan(double x);
#include <stdio.h>
#include <math.h>
int main() {
double angle = M_PI / 4; // 45 ডিগ্রি রেডিয়ানে
printf("sin(45): %.2f\n", sin(angle));
printf("cos(45): %.2f\n", cos(angle));
printf("tan(45): %.2f\n", tan(angle));
return 0;
}
Output:
sin(45): 0.71
cos(45): 0.71
tan(45): 1.00
ceil()
– ঊর্ধ্বগামী পূর্ণসংখ্যা নির্ধারণceil()
ফাংশনটি দশমিক সংখ্যা পূর্ণসংখ্যায় রূপান্তরিত করে উপরের দিকে রাউন্ড করে।
double ceil(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = 4.2;
double result = ceil(num);
printf("Ceiling value: %.0f\n", result);
return 0;
}
Output:Ceiling value: 5
floor()
– নিম্নগামী পূর্ণসংখ্যা নির্ধারণfloor()
ফাংশনটি দশমিক সংখ্যা পূর্ণসংখ্যায় রূপান্তরিত করে নিচের দিকে রাউন্ড করে।
double floor(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = 4.8;
double result = floor(num);
printf("Floor value: %.0f\n", result);
return 0;
}
Output:Floor value: 4
fabs()
– পজিটিভ মান নির্ধারণfabs()
ফাংশনটি একটি সংখ্যার পজিটিভ বা absolute মান নির্ধারণ করে।
double fabs(double x);
#include <stdio.h>
#include <math.h>
int main() {
double num = -5.67;
double result = fabs(num);
printf("Absolute value: %.2f\n", result);
return 0;
}
Output:Absolute value: 5.67
ফাংশন | কাজ |
---|---|
pow() | শক্তি নির্ধারণ (x^y) |
sqrt() | বর্গমূল নির্ধারণ |
exp() | প্রাকৃতিক সূচক নির্ধারণ (e^x) |
log() | প্রাকৃতিক লগারিদম নির্ধারণ |
log10() | দশমিক ভিত্তিক লগারিদম নির্ধারণ |
sin() | সাইন কোণ নির্ধারণ |
cos() | কোসাইন কোণ নির্ধারণ |
tan() | ট্যানজেন্ট কোণ নির্ধারণ |
ceil() | ঊর্ধ্বগামী পূর্ণসংখ্যা নির্ধারণ |
floor() | নিম্নগামী পূর্ণসংখ্যা নির্ধারণ |
fabs() | পজিটিভ মান (absolute value) নির্ধারণ |
এই এডভান্সড গাণিতিক ফাংশনগুলো সি প্রোগ্রামে জটিল গাণিতিক সমস্যার সমাধানে এবং গণনাকে সহজ ও দ্রুততর করতে সহায়ক।
math.h
এর অ্যাডভান্সড গাণিতিক ফাংশনসমূহmath.h
হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় গাণিতিক কাজের জন্য বিভিন্ন অ্যাডভান্সড ফাংশন সরবরাহ করে। এই ফাংশনগুলো গাণিতিক, ত্রিকোণমিতিক, সূচকীয় এবং লগারিদমিক কাজ করার জন্য খুবই কার্যকর।
এখানে math.h
হেডার ফাইলের কিছু গুরুত্বপূর্ণ অ্যাডভান্সড গাণিতিক ফাংশনের বর্ণনা দেওয়া হলো:
sin()
, cos()
, tan()
– ত্রিকোণমিতিক ফাংশনসমূহত্রিকোণমিতিক ফাংশনগুলো কোণ (রেডিয়ানে) অনুযায়ী সাইন, কোসাইন এবং ট্যানজেন্টের মান প্রদান করে।
sin()
– কোণের সাইন নির্ণয়cos()
– কোণের কোসাইন নির্ণয়tan()
– কোণের ট্যানজেন্ট নির্ণয়সিঙ্কট্যাক্স:
double sin(double x);
double cos(double x);
double tan(double x);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double angle = M_PI / 4; // 45 ডিগ্রি রেডিয়ানে
printf("sin(45°) = %f\n", sin(angle));
printf("cos(45°) = %f\n", cos(angle));
printf("tan(45°) = %f\n", tan(angle));
return 0;
}
asin()
, acos()
, atan()
, atan2()
– ইনভার্স ত্রিকোণমিতিক ফাংশনসমূহইনভার্স ত্রিকোণমিতিক ফাংশনগুলো কোনো মানের জন্য কোণ নির্ণয় করতে ব্যবহৃত হয়।
asin()
– সাইন ইনভার্স নির্ণয় (radians-এ)acos()
– কোসাইন ইনভার্স নির্ণয় (radians-এ)atan()
– ট্যানজেন্ট ইনভার্স নির্ণয় (radians-এ)atan2(y, x)
– y/x এর ট্যানজেন্ট ইনভার্স নির্ণয় করে এবং সঠিক চতুর্ভুজে কোণ নির্দেশ করেসিঙ্কট্যাক্স:
double asin(double x);
double acos(double x);
double atan(double x);
double atan2(double y, double x);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double value = 0.707;
printf("asin(0.707) = %f radians\n", asin(value));
printf("acos(0.707) = %f radians\n", acos(value));
printf("atan(1) = %f radians\n", atan(1));
printf("atan2(1, 1) = %f radians\n", atan2(1, 1));
return 0;
}
sinh()
, cosh()
, tanh()
– হাইপারবোলিক ফাংশনসমূহহাইপারবোলিক ফাংশনগুলো হাইপারবোলিক সাইন, কোসাইন এবং ট্যানজেন্টের মান প্রদান করে। এগুলো হাইপারবোলিক কার্ভের গাণিতিক কাজের জন্য ব্যবহৃত হয়।
sinh()
– হাইপারবোলিক সাইনcosh()
– হাইপারবোলিক কোসাইনtanh()
– হাইপারবোলিক ট্যানজেন্টসিঙ্কট্যাক্স:
double sinh(double x);
double cosh(double x);
double tanh(double x);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double value = 1.0;
printf("sinh(1) = %f\n", sinh(value));
printf("cosh(1) = %f\n", cosh(value));
printf("tanh(1) = %f\n", tanh(value));
return 0;
}
exp()
, log()
, log10()
– সূচকীয় এবং লগারিদমিক ফাংশনসমূহসূচকীয় এবং লগারিদমিক কাজের জন্য এই ফাংশনগুলো ব্যবহৃত হয়।
exp(x)
– \( e^x \) এর মান প্রদান করেlog(x)
– প্রাকৃতিক লগারিদম (ln) প্রদান করে (ভিত্তি \( e \))log10(x)
– দশমিক ভিত্তিক লগারিদম (ভিত্তি 10) প্রদান করেসিঙ্কট্যাক্স:
double exp(double x);
double log(double x);
double log10(double x);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double value = 2.0;
printf("exp(2) = %f\n", exp(value));
printf("log(2) = %f\n", log(value));
printf("log10(2) = %f\n", log10(value));
return 0;
}
pow()
– ঘাত (Power) নির্ণয়pow()
ফাংশনটি একটি নির্দিষ্ট ভিত্তি (base) এবং সূচক (exponent) দিয়ে ঘাত নির্ণয় করতে ব্যবহৃত হয়।
সিঙ্কট্যাক্স:
double pow(double base, double exponent);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double base = 2.0;
double exponent = 3.0;
printf("2^3 = %f\n", pow(base, exponent));
return 0;
}
sqrt()
এবং cbrt()
– বর্গমূল এবং ঘনমূল নির্ণয়sqrt()
– বর্গমূল (Square Root) নির্ণয়cbrt()
– ঘনমূল (Cube Root) নির্ণয়সিঙ্কট্যাক্স:
double sqrt(double x);
double cbrt(double x);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double value = 8.0;
printf("sqrt(8) = %f\n", sqrt(value));
printf("cbrt(8) = %f\n", cbrt(value));
return 0;
}
hypot()
– হাইপোথেনুস নির্ণয়hypot()
ফাংশনটি পিথাগোরাস থিওরেম ব্যবহার করে দুটি বাহুর উপর ভিত্তি করে হাইপোথেনুস নির্ণয় করে। এটি \( \sqrt{x^2 + y^2} \) এর মান প্রদান করে।
সিঙ্কট্যাক্স:
double hypot(double x, double y);
উদাহরণ:
#include <stdio.h>
#include <math.h>
int main() {
double x = 3.0;
double y = 4.0;
printf("Hypotenuse of (3, 4) = %f\n", hypot(x, y));
return 0;
}
ফাংশন | কাজ |
---|---|
sin() , cos() , tan() | ত্রিকোণমিতিক ফাংশন |
asin() , acos() , atan() , atan2() | ইনভার্স ত্রিকোণমিতিক ফাংশন |
sinh() , cosh() , tanh() | হাইপারবোলিক ফাংশন |
exp() , log() , log10() | সূচকীয় এবং লগারিদমিক ফাংশন |
pow() | ঘাত (Power) নির্ণয় |
sqrt() , cbrt() | বর্গমূল এবং ঘনমূল নির্ণয় |
hypot() | হাইপোথেনুস নির্ণয় |
এই অ্যাডভান্সড গাণিতিক ফাংশনগুলো math.h
লাইব্রেরি থেকে ব্যবহৃত হয় এবং সি প্রোগ্রামিংয়ে বৈজ্ঞানিক ও গাণিতিক কাজের জন্য অত্যন্ত উপকারী।
sinh()
, cosh()
, tanh()
সি প্রোগ্রামিং ভাষায় math.h
হেডার ফাইলটি বিভিন্ন গাণিতিক কাজের জন্য ফাংশন সরবরাহ করে, যার মধ্যে হাইপারবোলিক ফাংশনগুলি (hyperbolic functions) অন্তর্ভুক্ত। sinh()
, cosh()
, এবং tanh()
হাইপারবোলিক ফাংশনগুলি ট্রিগনোমেট্রিক ফাংশনের মতো, তবে তারা সাধারণ ট্রিগনোমেট্রিক ফাংশনের পরিবর্তে হাইপারবোলিক ক্ষেত্রের সাথে সম্পর্কিত।
এই ফাংশনগুলির ব্যবহার গাণিতিক এবং প্রকৌশলগত সমস্যা সমাধানে সহায়ক, যেমন সিগনাল প্রসেসিং, ভৌত বিজ্ঞান, এবং ইলেকট্রনিকস।
sinh()
– হাইপারবোলিক সাইনsinh()
ফাংশনটি একটি সংখ্যা থেকে হাইপারবোলিক সাইন (hyperbolic sine) বের করতে ব্যবহৃত হয়। এটি একটি প্রাকৃতিক গাণিতিক ফাংশন এবং এটি (e^x - e^(-x)) / 2
এর সমতুল্য।
double sinh(double x);
x
: যে মানটির জন্য হাইপারবোলিক সাইন বের করতে হবে।#include <stdio.h>
#include <math.h>
int main() {
double x = 1.0;
double result = sinh(x); // হাইপারবোলিক সাইন বের করা
printf("sinh(%.2f) = %.2f\n", x, result);
return 0;
}
এখানে, sinh(1.0)
ফাংশনটি 1.175201 রিটার্ন করবে, যা হাইপারবোলিক সাইন 1 এর মান।
cosh()
– হাইপারবোলিক কসমcosh()
ফাংশনটি একটি সংখ্যা থেকে হাইপারবোলিক কসম (hyperbolic cosine) বের করতে ব্যবহৃত হয়। এটি (e^x + e^(-x)) / 2
এর সমতুল্য।
double cosh(double x);
x
: যে মানটির জন্য হাইপারবোলিক কসম বের করতে হবে।#include <stdio.h>
#include <math.h>
int main() {
double x = 1.0;
double result = cosh(x); // হাইপারবোলিক কসম বের করা
printf("cosh(%.2f) = %.2f\n", x, result);
return 0;
}
এখানে, cosh(1.0)
ফাংশনটি 1.543081 রিটার্ন করবে, যা হাইপারবোলিক কসম 1 এর মান।
tanh()
– হাইপারবোলিক ট্যানজেন্টtanh()
ফাংশনটি একটি সংখ্যা থেকে হাইপারবোলিক ট্যানজেন্ট (hyperbolic tangent) বের করতে ব্যবহৃত হয়। এটি sinh(x) / cosh(x)
এর সমতুল্য এবং এটি সাধারণত আংশিক অপ্রতিসম সংকেত বা সিগনাল প্রসেসিংয়ে ব্যবহৃত হয়।
double tanh(double x);
x
: যে মানটির জন্য হাইপারবোলিক ট্যানজেন্ট বের করতে হবে।#include <stdio.h>
#include <math.h>
int main() {
double x = 1.0;
double result = tanh(x); // হাইপারবোলিক ট্যানজেন্ট বের করা
printf("tanh(%.2f) = %.2f\n", x, result);
return 0;
}
এখানে, tanh(1.0)
ফাংশনটি 0.761594 রিটার্ন করবে, যা হাইপারবোলিক ট্যানজেন্ট 1 এর মান।
ফাংশন | সংজ্ঞা | সিঙ্কট্যাক্স |
---|---|---|
sinh() | হাইপারবোলিক সাইন, (e^x - e^(-x)) / 2 | double sinh(double x); |
cosh() | হাইপারবোলিক কসম, (e^x + e^(-x)) / 2 | double cosh(double x); |
tanh() | হাইপারবোলিক ট্যানজেন্ট, sinh(x) / cosh(x) | double tanh(double x); |
হাইপারবোলিক ফাংশনগুলি সাইন, কসম এবং ট্যানজেন্টের হাইপারবোলিক সমতুল্য হিসেবে কাজ করে। এগুলি প্রাকৃতিক লগারিদমের মতো অনেক ক্ষেত্রে ব্যবহৃত হয়, যেমন সিগন্যাল প্রসেসিং, ইলেকট্রনিকস, এবং গাণিতিক মডেলিংয়ে। sinh()
, cosh()
, এবং tanh()
ফাংশনগুলো math.h
হেডার ফাইলে অন্তর্ভুক্ত এবং তারা যেকোনো ভ্যালু রিয়েল নম্বরের জন্য কাজ করতে পারে।
exp()
এবং log10()
সি প্রোগ্রামিং ভাষায় exp()
এবং log10()
ফাংশনগুলি গাণিতিক এক্সপোনেনশিয়াল এবং লগারিদমিক ফাংশন হিসেবে ব্যবহৃত হয়। এই ফাংশনগুলি math.h
হেডার ফাইলে ডিফাইন করা থাকে এবং তারা অ্যালগরিদমিক হিসাব এবং বৈজ্ঞানিক গণনায় ব্যাপকভাবে ব্যবহৃত হয়।
exp()
ফাংশন: Exponential Functionexp()
ফাংশনটি একটি এটিকে এক্সপোনেনশিয়াল ফাংশন হিসাবে ব্যবহার করা হয়, যা একটি গাণিতিক এক্সপোনেনশিয়াল গণনা করে। এই ফাংশনটি e
(ন্যাচারাল লগারিদমের বেস, যেখানে e ≈ 2.71828
) এর শক্তি হিসেবে ইনপুট মান গণনা করে। অর্থাৎ, exp(x)
মানে **e^x
**।
double exp(double x);
x
: এক্সপোনেনশিয়াল ফাংশনের ইনপুট (যে মানটি আপনি exponent হিসেবে চাইছেন)।exp(x)
রিটার্ন করে, যা e^x
এর মান।exp()
ফাংশন ব্যবহার#include <stdio.h>
#include <math.h>
int main() {
double result;
// exp() ব্যবহার করে e^x গণনা করা
result = exp(2.0); // e^2 এর মান বের করা
printf("exp(2.0) = %f\n", result); // আউটপুট: 7.389056
return 0;
}
এখানে, exp(2.0)
ফাংশনটি e^2
এর মান গণনা করে যা প্রায় **7.389056
**।
log10()
ফাংশন: Logarithmic Functionlog10()
ফাংশনটি একটি লগারিদমিক ফাংশন, যা একটি সংখ্যা 10 এর বেসে লগারিদমের মান বের করে। অর্থাৎ, log10(x)
মানে হলো 10 এর কোন শক্তিতে x
আসবে তা বের করা।
double log10(double x);
x
: এটি লগারিদম গণনা করার জন্য ইনপুট মান (যে সংখ্যাটির লগারিদম আপনি বের করতে চান)।log10(x)
রিটার্ন করে 10 বেসের লগারিদম।log10()
ফাংশন ব্যবহার#include <stdio.h>
#include <math.h>
int main() {
double result;
// log10() ব্যবহার করে 10 বেসের লগারিদম বের করা
result = log10(100.0); // log10(100)
printf("log10(100.0) = %f\n", result); // আউটপুট: 2.000000
return 0;
}
এখানে, log10(100)
ফাংশনটি 100
এর 10 বেসের লগারিদম বের করে, যা 2.000000
হবে, কারণ **10^2 = 100
**।
exp()
এবং log10()
এর সম্পর্কexp(x)
এবং log10(x)
একে অপরের সাথে সম্পর্কিত। বিশেষভাবে, যদি exp(x)
এর মান বের করা হয়, তবে তার লগারিদম 10 এর বেসে নেওয়া হলে log10(exp(x)) = x * log10(e)
হবে।
এছাড়া, log10(exp(x))
এর জন্য x * log10(e)
মান হবে।
ফাংশন | বর্ণনা | সিঙ্কট্যাক্স |
---|---|---|
exp() | গাণিতিক এক্সপোনেনশিয়াল ফাংশন, e^x বের করে। | double exp(double x); |
log10() | 10 বেসের লগারিদম বের করে। | double log10(double x); |
exp(x)
ফাংশনটি e^x
বের করে, যেখানে e
হলো ন্যাচারাল লগারিদমের বেস, যা প্রায় 2.71828।log10(x)
ফাংশনটি 10 বেসে x
এর লগারিদম বের করে, এবং এটি গাণিতিক পরিসংখ্যান এবং সায়েন্টিফিক ক্যালকুলেশনগুলিতে ব্যবহৃত হয়।এই ফাংশনগুলি গাণিতিক বা বৈজ্ঞানিক প্রোগ্রামিংয়ে খুবই কার্যকরী এবং math.h
লাইব্রেরির অংশ হিসাবে উপলব্ধ।
কমপ্লেক্স নাম্বার (Complex Numbers) এমন সংখ্যার একটি ধরন, যা বাস্তব সংখ্যা এবং কাল্পনিক (imaginary) সংখ্যার সমন্বয়ে গঠিত। কমপ্লেক্স নাম্বারকে সাধারণত a + bi
আকারে লেখা হয়, যেখানে:
a
হলো বাস্তব সংখ্যা (real part)।b
হলো কাল্পনিক সংখ্যা (imaginary part), এবং i
হলো কাল্পনিক একক (imaginary unit), যার মান **i^2 = -1
**।সি প্রোগ্রামিং ভাষায় কমপ্লেক্স নাম্বার পরিচালনা করার জন্য complex.h
হেডার ফাইলটি ব্যবহৃত হয়। এই হেডার ফাইলটি কমপ্লেক্স নাম্বারগুলি পরিচালনার জন্য বিভিন্ন ফাংশন এবং ম্যাক্রো সরবরাহ করে।
complex.h
হেডার ফাইলটি সি প্রোগ্রামে কমপ্লেক্স নাম্বার ম্যানিপুলেট করার জন্য ফাংশন সরবরাহ করে, যেমন যোগফল (addition), বিয়োগফল (subtraction), গুণফল (multiplication), ভাগফল (division), মডুলাস (modulus), অ্যাঙ্গেল (angle) ইত্যাদি। এই ফাংশনগুলোর মাধ্যমে কমপ্লেক্স নাম্বারের উপর গণনা করা সহজ হয়।
creal()
- কমপ্লেক্স নাম্বারের বাস্তব অংশ বের করা।cimag()
- কমপ্লেক্স নাম্বারের কাল্পনিক অংশ বের করা।cconj()
- কমপ্লেক্স নাম্বারের কনজুগেট বের করা।cabs()
- কমপ্লেক্স নাম্বারের মডুলাস (অথবা আয়তন) বের করা।cexp()
- কমপ্লেক্স নাম্বারের এক্সপোনেনশিয়াল বের করা।clog()
- কমপ্লেক্স নাম্বারের লোগারিদম বের করা।carg()
- কমপ্লেক্স নাম্বারের অ্যাঙ্গেল বের করা।#include <stdio.h>
#include <complex.h>
int main() {
double complex num1 = 2.0 + 3.0*I; // কমপ্লেক্স নাম্বার num1: 2 + 3i
double complex num2 = 1.0 + 4.0*I; // কমপ্লেক্স নাম্বার num2: 1 + 4i
double complex result;
// যোগফল
result = num1 + num2;
printf("Addition: %.2f + %.2fi\n", creal(result), cimag(result));
// বিয়োগফল
result = num1 - num2;
printf("Subtraction: %.2f + %.2fi\n", creal(result), cimag(result));
// গুণফল
result = num1 * num2;
printf("Multiplication: %.2f + %.2fi\n", creal(result), cimag(result));
return 0;
}
এখানে, creal()
এবং cimag()
ফাংশন ব্যবহার করে কমপ্লেক্স নাম্বারের বাস্তব এবং কাল্পনিক অংশ আলাদা করা হয়েছে।
#include <stdio.h>
#include <complex.h>
int main() {
double complex num = 3.0 + 4.0*I; // কমপ্লেক্স নাম্বার num: 3 + 4i
// মডুলাস বের করা
double modulus = cabs(num);
printf("Modulus: %.2f\n", modulus);
// কনজুগেট বের করা
double complex conjugate = cconj(num);
printf("Conjugate: %.2f + %.2fi\n", creal(conjugate), cimag(conjugate));
return 0;
}
এখানে, cabs()
ফাংশনটি কমপ্লেক্স নাম্বারের মডুলাস বের করে এবং cconj()
ফাংশনটি কমপ্লেক্স নাম্বারের কনজুগেট বের করে।
#include <stdio.h>
#include <complex.h>
int main() {
double complex num = 1.0 + 1.0*I; // কমপ্লেক্স নাম্বার num: 1 + i
// লোগারিদম বের করা
double complex log_result = clog(num);
printf("Logarithm: %.2f + %.2fi\n", creal(log_result), cimag(log_result));
// এক্সপোনেনশিয়াল বের করা
double complex exp_result = cexp(num);
printf("Exponential: %.2f + %.2fi\n", creal(exp_result), cimag(exp_result));
return 0;
}
এখানে clog()
ফাংশনটি কমপ্লেক্স নাম্বারের প্রাকৃতিক লগারিদম বের করে এবং cexp()
ফাংশনটি কমপ্লেক্স নাম্বারের এক্সপোনেনশিয়াল বের করে।
কমপ্লেক্স নাম্বারগুলি গণিত, পদার্থবিদ্যা, ইঞ্জিনিয়ারিং, সংকেত প্রক্রিয়াকরণ (signal processing) এবং ফিনান্স প্রভৃতি ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়।
কমপ্লেক্স নাম্বারগুলি সাধারণত সিস্টেমের সমীকরণ সমাধান করতে ব্যবহৃত হয়, যেমন কিউবিক সমীকরণ বা দ্বিতীয়-শ্রেণির সমীকরণগুলিতে। তারা তরঙ্গ সমীকরণ, বৈদ্যুতিক সার্কিট ডিজাইন, ফ্লুইড মেকানিক্স, ইত্যাদিতেও ব্যবহার হয়।
কমপ্লেক্স নাম্বারগুলি ফ্রিকোয়েন্সি বিশ্লেষণ এবং Fourier ট্রান্সফর্মে ব্যবহৃত হয়। সংকেতগুলি কমপ্লেক্স আকারে উপস্থাপিত হয় এবং তাদের বিশ্লেষণ ও প্রক্রিয়া করা সহজ হয়।
কমপ্লেক্স নাম্বারগুলি কিছু নির্দিষ্ট গাণিতিক মডেল যেমন Black-Scholes মডেল (যা স্টক বিকল্প মূল্যায়নের জন্য ব্যবহৃত হয়) এবং আর্থিক বিশ্লেষণে ব্যবহৃত হয়।
complex.h
হেডার ফাইলটি কমপ্লেক্স নাম্বার পরিচালনা করার জন্য বিভিন্ন ফাংশন প্রদান করে।এভাবে, সি প্রোগ্রামিংয়ে কমপ্লেক্স নাম্বার হ্যান্ডলিং বিভিন্ন গাণিতিক এবং বৈজ্ঞানিক সমস্যার সমাধানে সহায়ক।
common.read_more